package org.jeecg.modules.htxincailiao.industry.domain.dto;

import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;

/**
 * @Description: ht_industry_salon_apply
 * @Author: jeecg-boot
 * @Date:   2021-06-05
 * @Version: V1.0
 */
@Data
@TableName("ht_industry_salon_apply")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="ht_industry_salon_apply对象", description="ht_industry_salon_apply")
public class HTIndustrySalonApplyDTO implements Serializable {
    private static final long serialVersionUID = 1L;

    /**主键*/
    @TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键")
    private String id;

    /**会议ID*/
    @Excel(name = "会议ID", width = 15, dictTable = "ht_industry_salon", dicText = "title", dicCode = "id")
    @Dict(dictTable = "ht_industry_salon", dicText = "title", dicCode = "id")
    @ApiModelProperty(value = "会议ID")
    @NotNull(message = "会议ID不能为空")
    private String salonId;

    /**报名付费订单ID*/
    @Excel(name = "报名付费订单ID", width = 15)
    @ApiModelProperty(value = "报名付费订单ID")
    private String salonOrderId;
    /**报名用户Id*/
    @Excel(name = "报名用户Id", width = 15)
    @ApiModelProperty(value = "报名用户Id")
    private String applyUserId;
    /**报名对象：0-展商 1-观众*/
    @Excel(name = "报名对象：0-展商 1-观众", width = 15, dicCode = "industry_salon_apply_object_type")
    @Dict(dicCode = "industry_salon_apply_object_type")
    @ApiModelProperty(value = "报名对象：0-展商 1-观众")
    @NotNull(message = "报名对象不能为空")
    private Integer applyObjectType;

    /**主营产品*/
    @Excel(name = "主营产品", width = 15)
    @ApiModelProperty(value = "主营产品")
    private String mainProducts;
    /**公司类型*/
    @Excel(name = "公司类型", width = 15)
    @ApiModelProperty(value = "公司类型")
    private String enterpriseType;
    /**公司行业*/
    @Excel(name = "公司行业", width = 15)
    @ApiModelProperty(value = "公司行业")
    private String enterpriseIndustry;
    /**公司名称*/
    @Excel(name = "公司名称", width = 15)
    @ApiModelProperty(value = "公司名称")
    private String enterpriseName;
    /**联系人*/
    @Excel(name = "联系人", width = 15)
    @ApiModelProperty(value = "联系人")
    @NotNull(message = "联系人不能为空")
    private String contactPerson;
    /**联系电话*/
    @Excel(name = "联系电话", width = 15)
    @ApiModelProperty(value = "联系手机号")
    @NotNull(message = "联系手机号不能为空")
    @Length(min = 11, max = 11, message = "联系手机号格式不正确")
    private String contactPhoneNumber;

    /**联系电话*/
    @Excel(name = "联系电话", width = 15)
    @ApiModelProperty(value = "联系电话")
    private String contactTelephone;
    /**联系人邮箱*/
    @Excel(name = "联系人邮箱", width = 15)
    @ApiModelProperty(value = "联系人邮箱")
    private String contactEmail;
    /**联系人职位*/
    @Excel(name = "联系人职位", width = 15)
    @ApiModelProperty(value = "联系人职位")
    private String contactPosition;
    /**备注*/
    @Excel(name = "备注", width = 15)
    @ApiModelProperty(value = "备注")
    private String remark;
    /**其他要求*/
    @Excel(name = "其他要求", width = 15)
    @ApiModelProperty(value = "其他要求")
    private String otherRemark;
    /**逻辑删除：1表示删除，0表示未删除。*/
    @Excel(name = "逻辑删除：1表示删除，0表示未删除。", width = 15)
    @ApiModelProperty(value = "逻辑删除：1表示删除，0表示未删除。")
    private Integer isDeleted;
    /**创建人*/
    @ApiModelProperty(value = "创建人")
    private String createBy;
    /**创建时间*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建时间")
    private Date createTime;
    /**更新人*/
    @ApiModelProperty(value = "更新人")
    private String updateBy;
    /**更新时间*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "更新时间")
    private Date updateTime;

    private Integer paymentType;

    /**展商参展费*/
    @Excel(name = "展商参展费", width = 15)
    @ApiModelProperty(value = "展商参展费")
    private BigDecimal exhibitorCost;
    /**观众观展费*/
    @Excel(name = "观众观展费", width = 15)
    @ApiModelProperty(value = "观众观展费")
    private BigDecimal audienceCost;


    /**
     * 购买商品数量 - Type Integer
     */
    private Integer quantity;

    public void setQuantity(Integer quantity) {
        this.quantity = quantity;
//        this.quantityString = quantity.toString();
    }

    /**
     * 购买商品数量 - Type String
     */
//    @Pattern(regexp = "^[1-9]\\d*$", message = "请输入大于0的数字")
//    private String quantityString;
//
//    public String getQuantityString() {
//        return quantity.toString();
//    }

    /**
     * 总计花费
     */
    private BigDecimal totalAmount;
}
